Massively parallel processing (MPP) shared nothing relational database management systems (RDBMS) typically include a plurality of shared nothing nodes. A shared nothing node may include at least one storage coupled to at least one compute node. Typically in a MPP shared nothing RDBMS, the number of storages is statically assigned to the number of compute nodes in a particular shared nothing node.
In processing a query to a MPP shared nothing RDBMS, data may need to be repartitioned and transmitted from one shared nothing node to another shared nothing node storing other data that may be needed to respond to the query. This statically assigned architecture between storages and compute nodes may cause underutilization or overutilization of some compute nodes. Also, particular compute nodes may be inefficiently used by a sub-optimal logic plan that retrieves a response to the query, rather than a logic plan that efficiently uses the storage and compute nodes.